我正在尝试第一次使用oauth2访问365本机应用程序。 我已在Azure AD中注册了我的应用程序。 文档说,“...在Azure管理门户中,选择您的应用程序,然后在顶部菜单中选择配置。向下滚动到键。”
但在(我的)Azure应用程序,配置属性中,我只有名称,客户端ID,URL和徽标,以及权限区域 - 没有“密钥”区域。
我错过了什么吗?
答案 0 :(得分:0)
由于正在寻找KEYS,您需要在AD中创建应用程序作为Web应用程序或Web API
然后你可以找到钥匙和秘密。
如果您正在开发本机客户端应用程序,则不需要密钥,因为此身份验证流程不需要密钥。
首先,您需要使用 ADAL ( A c strong D irectory A 验证 L ibrary)为您的客户端程序使用正确的版本。
然后您应该引用App的AD配置,注意不需要KEY。
// Native client configuration in AzureAD
private string clientID = "3dfre985df0-b45640-443-a8e5-f4bd23e9d39f368";
private Uri redirectUri = new Uri("http://myUrl.webapi.client");
然后准备AD权限URL并创建Auth Context。
private const string authority = "https://login.windows.net/cloudalloc.com";
private AuthenticationContext authContext = new AuthenticationContext(authority);
这就是全部,之后你需要根据你想要访问的资源要求访问令牌。
AuthenticationResult result = null;
try
{
result = authContext.AcquireToken(resource, clientId, redirectUri, PromptBehavior.Never);
}
catch (AdalException ex)
{
if (ex.ErrorCode != "user_interaction_required")
{
// An unexpected error occurred.
MessageBox.Show(ex.Message);
}
}
resource
可以是webapi或office 365资源URI