小编Sat*_*iru的帖子

关联失败。在 OIDC 身份验证期间的 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler

我使用以下组合来实现这一点:1) 浏览器隐身模式 (Chrome) 2) 应用程序位于 Azure 应用程序网关后面(如果不是,则不进行复制)。关闭基于 Cookie 的关联(默认);如果打开,似乎会使重现更频繁地发生。

代码是相当普通的 OIDC authN + cookie。

        services.AddAuthentication(options =>
        {
            options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
        .AddAzureAd(options => {
            Configuration.Bind("AzureAd", options);
        })
        .AddCookie(p => p.SlidingExpiration = true);
Run Code Online (Sandbox Code Playgroud)

我按照建议将 X-Forwarded-Proto 标头转发到 auth 中间件,以便 redirect_uri 使用正确的协议方案。

代码处理

我尝试处理OnRemoteFailure()事件,并重定向到“/Home/AuthRedirect”,这是一个等待 20 秒的匿名页面,然后重定向到“/”(主页)。它有时似乎有效,但并非总是如此。我没有想法。

变通方法

1) 用户可以再次进入主页并按 F5 直到这有效。似乎每个 F5 都让他们向前迈进了一步,一旦填充了 OpenID cookie,其他一切(在 openid 完成后我有更多的身份验证,通过 adal.js 用于 AJAX 使用)。2) 绕过应用程序网关并使用直接服务结构集群 DNS 名称(不接受,因为它是 http)。

细节

System.Exception:关联失败。在 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.d__12.MoveNext() --- 从上一个抛出异常的位置的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime。 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at …

c# asp.net-identity openid-connect asp.net-core azure-application-gateway

7
推荐指数
3
解决办法
2万
查看次数

如何以编程方式创建给定(json)架构的OrientDB数据库?

对于我的开发工作流程目的,我想在运行时创建一个给定JSON模式的新orientdb数据库.我不相信它在orientdb中本机支持,是否存在任何现有的解决方案 - 提供JSON模式并指向orientdb实例,并自动创建数据库(边,顶点,索引以及可能的一些示例数据).

json orientdb

5
推荐指数
1
解决办法
643
查看次数

获取Azure AD V2端点的访问令牌时如何指定资源URI?

我在之前的项目中使用了ADAL.js,该项目仅支持工作帐户,并且能够成功获取idtokens,然后访问API(ResourceURI:" https://myresource.com ").工作良好.

现在,我正在尝试将MSAL.js用于另一个项目,因为我需要支持工作帐户(aad auth)个人"Microsoft帐户"(MSA).我现在遇到问题,试图做同样的事情,就像在我的ADAL项目中一样.

"资源"的概念似乎从AAD V2中消失了.那么在获取目标API的访问令牌时如何指定资源URL?因此,生成的accesstoken包含AUD声明中的ResourceURI(将由我调用的API强制执行).

如果我强制添加Resource querystring参数,那么:

msalapp.acquireTokenSilent([], null, null, "resource=https%3A%2F%2Fmyresource.com")

我收到以下错误:

AADSTS901002: The 'resource' request parameter is not supported.

文档说使用SCOPE代替.但使用:

msalapp.acquireTokenSilent(['https://myresource.com'])

结果是:

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope https://myresource.com openid profile is not valid. The scope format is invalid. Scope must be in a valid URI form <https://example/scope> or a valid Guid <guid/scope>..

那么:在通过MSAL.js使用v2端点时,如何在获取访问令牌时指定资源URI?对不起,(通常很不错)MSDN文章在这种情况下完全没用...

azure-active-directory adal adal.js azure-ad-msal msal.js

3
推荐指数
1
解决办法
3108
查看次数

PowerBI-Javascript 嵌入式仪表板不可“点击”(钻取关联报告等)

我有一个场景,我需要嵌入 PowerBI 仪表板,我通过执行以下操作来完成:

  1. 使用ADAL.JS通过AD对浏览器用户进行身份验证;然后使用 AD 应用程序向 powerbi 应用程序请求访问令牌。
  2. 将此访问令牌传递给 PowerBI-Javascript (powerbi.embed) 并将给定的仪表板嵌入到我的页面中。
  3. 此时,仪表板及其所有固定内容将显示在我的页面上。

然而,问题是,如果我尝试单击嵌入式仪表板上的任何固定项目,则什么也不会发生。相比之下,当我在 powerbi.com 上执行相同操作时,底层报告会加载,并且我会得到“钻取”行为。

如何在嵌入式案例中也实现相同类型的“钻取”行为?

javascript powerbi powerbi-embedded

0
推荐指数
1
解决办法
1940
查看次数