Azure 在隐式流的情况下,是否可以在JWT令牌中包含组?

Azure 在隐式流的情况下,是否可以在JWT令牌中包含组?,azure,oauth-2.0,azure-active-directory,swagger,Azure,Oauth 2.0,Azure Active Directory,Swagger,嗨,我正在Azure广告和.net核心应用程序上工作。我正在尝试实现身份验证和授权。我已经用我的.net核心应用程序配置了swagger。我能够使用swagger进行身份验证。目前,我参加了大约100个团体。我正在使用隐式授权流进行炫耀式身份验证。根据我看过的文件 如果有超过5个组,那么JWT令牌将包括“hasgroups”:“true”;-在我的例子中,我可以在JWT令牌中看到“hasgroups”:“true” 如果使用Azure AD Connect将组同步到Azure AD,则可以显示组

嗨,我正在Azure广告和.net核心应用程序上工作。我正在尝试实现身份验证和授权。我已经用我的.net核心应用程序配置了swagger。我能够使用swagger进行身份验证。目前,我参加了大约100个团体。我正在使用隐式授权流进行炫耀式身份验证。根据我看过的文件

如果有超过5个组,那么JWT令牌将包括“hasgroups”:“true”;-在我的例子中,我可以在JWT令牌中看到“hasgroups”:“true”

如果使用Azure AD Connect将组同步到Azure AD,则可以显示组名-在我的情况下,使用Azure AD Connect将组同步到Azure AD,但我无法查看ID或名称

我有100多个组,所以当我们使用隐式流时,由于url限制,不可能获得组

另外,如果我只有后端API,在这种情况下,建议使用哪个授权流?API对调用应用程序一无所知

在隐式流中,只有对azure ad的调用才能获取访问令牌,而在授权授予流中,将有两个调用,一个调用获取授权代码,然后使用授权代码获取访问令牌。这是我的理解。我不确定我是否正确理解了这一点。 有人能帮我理解以上两点吗?我对以上两点有些困惑。在这方面如有任何帮助,将不胜感激。谢谢

下面是我大摇大摆的实现

 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" } }
                });
            });

如果用户有太多的组,它们将不在访问令牌中。 隐式流的限制较小,因为标记在URL中返回


在这些情况下,您的后端需要通过Microsoft Graph API检查组成员身份。

Hi Junnas。谢谢我可以得到任何链接到msdn为上述?谢谢,这里提到了:。通过图形API获取用户组:目前我在JWT令牌中没有获取组ID或组名称,我在JWT令牌中获取“hasgroups”:“true”。这意味着我必须使用图形api来调用组信息。如果它是同步的,那么我也不会得到组的详细信息。我只得到“hasgroups”:“true”。在您共享的url中,他们提到了200个组作为JWT令牌。这是使用隐式流还是授权流?在隐式流中,JWT令牌将位于url中,因此JWT令牌可以包含200个令牌?我更新了我的问题,只是想知道我是否只有后端API,在这种情况下,建议使用哪个授权流?同样,对于swagger,我们可以使用授权流而不是隐式流吗?
  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");
            });