为什么我的Azure网站不接受OAuth令牌?

卡姆龙·波特

我希望我的应用程序在使用Azure网站托管时接受OAuth令牌。我有以下内容:

Web应用程序的web.config

<appSettings>
  <add key="ida:Realm" value="https://example.com/development" />
  <add key="ida:AudienceUri" value="https://example.com/development" />
  <add key="ida:Tenant" value="example.com" />
</appSettings>

Web应用程序的Startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;
using Microsoft.Owin.Security.ActiveDirectory;
using System.Configuration;
[assembly: OwinStartup(typeof(MyApplication.Web.Startup))]

namespace MyApplication.Web
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {    
            ConfigureAuth(app);
        }

        public void ConfigureAuth(IAppBuilder app)
        {
            app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
                    TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters()
                    {
                        ValidAudience = ConfigurationManager.AppSettings["ida:AudienceUri"]
                    },
                    Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
                });
        }
    }
}

Main.cs

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.Globalization;
using System.Net.Http;
using System.Net.Http.Headers;

void Main()
{
    var clientId = @"GUIDGUIDGUID";
    var key = @"KEYKEYKEYKEYKEY";
    var aadInstance = "https://login.windows.net/{0}";
    var tenant = "example.com";
    var authContext = new AuthenticationContext(String.Format(CultureInfo.InvariantCulture, aadInstance, tenant), true);
    var credential = new ClientCredential(clientId, key);
    authContext.TokenCache.Clear();
    var token = authContext.AcquireToken(@"https://example.com/development", credential);
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
        var response = client.GetAsync(@"https://app.example.com/").Result;
        var responseText = response.Content.ReadAsStreamAsync().Result;
        Console.Write(new StreamReader(responseText).ReadToEnd());
    }
}

谁能提供一些指导?

卡姆龙·波特

因此,事实证明我正在使用Uri该类来验证App ID URI。问题是,它在末尾添加了斜杠,从而导致了问题。一旦我开始使用string该类来存储App ID URI,就很好了。

因此,请确保您完全使用Azure AD中显示的值!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的Azure网站不接受OAuth令牌?

来自分类Dev

为什么我的Azure移动服务不接受承载令牌ADAL.js发送它?

来自分类Dev

为什么我的身体不接受利润?

来自分类Dev

为什么NotificationManager不接受我的通知

来自分类Dev

为什么我的程序不接受减法?

来自分类Dev

为什么SED不接受我的输入?

来自分类Dev

为什么我的Ubuntu GNOME不接受我的Google密码?

来自分类Dev

为什么我的Ubuntu GNOME不接受我的Google密码?

来自分类Dev

为什么我的身体不接受我的利润?

来自分类Dev

为什么Idris不接受我的自定义折页?

来自分类Dev

为什么Haskell不接受我的组合“ zip”定义?

来自分类Dev

为什么MySQL不接受我的外键?

来自分类Dev

为什么我的Java扫描仪不接受输入?

来自分类Dev

ngTable为什么不接受我的数据集?

来自分类Dev

为什么json库不接受我的引号?

来自分类Dev

为什么我的脚本不接受字符?

来自分类Dev

为什么MySQL不接受我的外键?

来自分类Dev

为什么Images.xcassets不接受我的jpeg?

来自分类Dev

JSON为什么不接受我的PHP变量?

来自分类Dev

为什么添加方法不接受我的输入?

来自分类Dev

为什么我的字符串不接受空值?

来自分类Dev

为什么itunecconnect不接受我的geoJSON文件?

来自分类Dev

ngTable为什么不接受我的数据集?

来自分类Dev

为什么 Tableau 不接受我的初始 SQL (Oracle)?

来自分类Dev

为什么python不接受我的输入并使用它?

来自分类Dev

为什么不接受输入?

来自分类Dev

为什么不接受sudo?

来自分类Dev

为什么我使用NDB的populate()不接受id或parent而是仅接受key?

来自分类Dev

为什么我的C ++代码不接受输入?我的代码有什么问题?

Related 相关文章

热门标签

归档