我使用以下组合来实现这一点: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
对于我的开发工作流程目的,我想在运行时创建一个给定JSON模式的新orientdb数据库.我不相信它在orientdb中本机支持,是否存在任何现有的解决方案 - 提供JSON模式并指向orientdb实例,并自动创建数据库(边,顶点,索引以及可能的一些示例数据).
我在之前的项目中使用了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文章在这种情况下完全没用...
我有一个场景,我需要嵌入 PowerBI 仪表板,我通过执行以下操作来完成:
然而,问题是,如果我尝试单击嵌入式仪表板上的任何固定项目,则什么也不会发生。相比之下,当我在 powerbi.com 上执行相同操作时,底层报告会加载,并且我会得到“钻取”行为。
如何在嵌入式案例中也实现相同类型的“钻取”行为?
adal ×1
adal.js ×1
asp.net-core ×1
c# ×1
javascript ×1
json ×1
msal.js ×1
orientdb ×1
powerbi ×1