Office 365,oauth2,在哪里可以找到 Key+Secret?

Office 365, oauth2, where do I find Key+Secret?

我第一次尝试使用 oauth2 为我的本机应用程序访问 365。 我已在 Azure AD 中注册我的应用程序。 文档说,“...在 Azure 管理门户中,select 您的应用程序并在顶部菜单中选择配置。向下滚动到键。”

但是在(我的)Azure 应用程序中,配置属性,我只有名称、客户端 ID、URL 和徽标,以及权限区域 - 没有 "Keys" 区域。

我错过了什么吗?

Web 应用程序 And/OR Web API

由于您正在寻找 KEYS,您需要在 AD 中将应用程序创建为 Web 应用程序或 Web API

然后你就可以找到密钥和秘密了。

本机客户端应用程序

如果您正在开发本机客户端应用程序,则不需要密钥,因为此身份验证流程不需要它们。

所以首先你需要使用ADAL (Active Directory Authentication Library) 为您的客户端程序使用正确的版本。

然后你应该为应用程序引用你的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