azure ADAL授权代码授予流量与特定租户

时间:2015-11-09 16:28:28

标签: azure oauth-2.0 adal

我使用以下代码:

        var stateId = Guid.NewGuid().ToString();
        var stateParam = "&state=" + stateId;
        var tenantId = "XXXXXXXXXXXXXXXXXXXX";
        var clientId = "XXXXXXXXXXXXXXXXXXXXXXX";
        var authority = String.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", tenant);

        AuthenticationContext authContext = new AuthenticationContext(authority);
        var authorizationUrl = authContext.GetAuthorizationRequestURL("", clientId, redirectUri, UserIdentifier.AnyUser, stateParam).AbsoluteUri;

对于Web应用程序,在回调/重定向URL中获取访问令牌。

工作正常。但我注意到一些奇怪的事情。

上面的代码,我指定了权限的tanantId,它是我的Azure帐户A中的Azure目录之一。

我还有另一个azure帐户B,它根本与A无关。但是当我在浏览器中登录帐户B,然后运行上面的代码时,它还会返回一个有效的代码,我可以通过AcquireTokenByAuthorizationCodeAsync调用获取访问令牌,并指定了tenantId,但DisplayableId是其中之一帐户B中的用户。

我的理解是,由于我在权限中指定了tenantId,它应该只对该租户中的用户进行扩展,如何授予其他租户中的用户?

1 个答案:

答案 0 :(得分:0)

tenantID确定必须发布令牌的租户。这并不一定意味着它必须是认证用户的同一租户。如果您的租户B中的用户在租户A中注册为访客,则可以从A成功获取代码和令牌。