問題

こんにちは私はAzure ADと.netコアアプリケーションに取り組んでいます。私は認証と認証を実装しようとしています。私は自分の.netコアアプリケーションでswaggerを設定しました。私はswaggerを使って認証を行うことができます。現在、私は約100のグループを持っています。私はswagger認証のために暗黙のグラントフローを使用してい

5つ以上のグループがある場合、JWTトークンには「hasgroups」:「true」が含まれ、私の場合はJWTトークンに「hasgroups」:「true」が表示されます。

Azure AD Connectを使用してグループがAzure ADに同期されている場合は、グループ名を表示できます。Azure AD Connectを使用してAzure ADに同期しましたが、IDや名前は表示できません。

私は100以上のグループを持っているので、暗黙のフローを使用しているときにグループを取得することは不可能です。

暗黙の流れでは、Accessトークンを取得するためにazure adを呼び出すだけです。認証グラントフローには、認証コードを取得し、認証コードを使用してアクセストークンを取得する2つの呼び出しがあります。これは私の理解です。私がこれを正しく理解しているかどうかはわかりません。 誰かが上記の2つの点を理解するのを助けることができますか?私は上記の2つの点についていくつかの混乱を抱えています。この点でどんな助けもありがとう。ありがとう

以下は私のswaggerの実装です。

  services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });

                c.AddSecurityDefinition("oauth2", new OAuth2Scheme
                {
                    Type = "oauth2",
                    Flow = "implicit",
                    AuthorizationUrl = swaggerUIOptions.AuthorizationUrl,
                    TokenUrl = swaggerUIOptions.TokenUrl,
                    Scopes = new Dictionary<string, string>
                    {
                        {"Read", "guid/.default" }
                    }
                });
                c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
                {
                        { "oauth2", new[] { "readAccess", "writeAccess" } }
                });
            });
 

設定では、

   app.UseSwaggerUI(c =>
            {

                c.OAuthClientId(swaggerUIOptions.ClientId);
                c.OAuthClientSecret(swaggerUIOptions.ClientSecret);
                c.OAuthRealm(azureActiveDirectoryOptions.ClientId);
                c.OAuthAppName("Swagger");
                c.OAuthAdditionalQueryStringParams(new { resource = azureActiveDirectoryOptions.ClientId });
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });
 

  ベストアンサー

ユーザーにグループが多すぎる場合、アクセストークンには含まれません。 トークンがURLに返されるため、暗黙のフローの制限は小さくなります。

このような場合、バックエンドはMicrosoft Graph API経由でグループメンバーシップをチェックする必要があります。

  同じタグがついた質問を見る

azureoauth-2.0azure-active-directoryswagger