Я пытаюсь создать пользовательскую проверку подлинности для статического веб-приложения Azure. Я следовал руководству по назначению ролей через Graph API. У меня это работает для двух пользователей, все остальные получают цикл входа в систему.
Добавлена пользовательская аутентификация в staticwebapp.config.
{
"navigationFallback": {
"rewrite": "/index.html",
"exclude": ["/images/*.{png,jpg,gif}", "/css/*"]
},
"routes": [
{
"route": "/logout",
"redirect": "/.auth/logout"
},
{
"route": "/.auth/login/twitter",
"statusCode": 404
},
{
"route": "/.auth/login/github",
"statusCode": 404
},
{
"route": "/profile-management",
"allowedRoles": ["manager"]
},
{
"route": "/*",
"allowedRoles": ["authenticated", "consultant", "manager"]
}
],
"auth": {
"rolesSource": "/api/auth/getroles",
"identityProviders": {
"azureActiveDirectory": {
"userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"registration": {
"openIdIssuer": "https://login.microsoftonline.com/{tenant_id}",
"clientIdSettingName": "Aad_Client_Id",
"clientSecretSettingName": "Aad_Client_Secret"
},
"login": {
"loginParameters": ["resource=https://graph.microsoft.com"]
}
}
}
},
"responseOverrides": {
"401": {
"redirect": "/.auth/login/aad",
"statusCode": 302
}
}
}
Идентификатор клиента из регистрации приложения задается в параметрах приложения Статического веб-приложения Azure, а секрет задается в параметрах приложения как ссылка на хранилище ключей. Статическое веб-приложение Azure добавляется в хранилище ключей Azure через управляемое удостоверение.
я удалил разрешение User.Read в регистрации приложения. Два пользователя вошли в систему до удаления, поэтому у них был доступ. Другие пользователи не могли дать согласие, потому что разрешения не было. Устранена проблема путем добавления разрешения User.Read при регистрации приложения, чтобы пользователь мог дать согласие на это разрешение.