问题标签 [azure-authentication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-web-api - 如何最好地保护 Azure 函数调用的 Web API?
我的任务是创建一个将从服务总线主题触发的 Azure 函数。然后需要该函数将数据写回我们网络内部托管的数据库。我遇到的问题是数据库所在的服务器没有外部 IP。
为了解决这个问题,我将创建一个 Web API,它将驻留在我们的内部网络上,托管在具有外部 IP 的服务器上的 IIS 上。该函数将调用 API,API 将数据写回数据库,没有遇到任何问题。
我现在遇到的最大问题是如何适当地保护 API。我想知道如何最好地做到这一点,因为没有客户端应用程序、前置门户或需要存储的凭据列表。我已经阅读了 Azure AD 身份验证,这对于 Azure 功能来说一切都很好,但是由于 Web API 在 Azure 之外和内部网络上,我不确定这是否是解决方案。我知道 JWT 并已在我为 3rd 方客户端开发的另一个 API 上使用它,其中创建了密钥和帐户,但是是否需要创建一个内部使用的帐户,我不是这么肯定。
任何人都可以让我知道上述问题的正确解决方案吗?我已经阅读了很多关于保护 API 的文档,我变得越来越困惑。
提前感谢任何有任何建议的人:)
uwp - WebAccount SignOutAsync() 未从本地缓存中删除帐户/令牌
我们的 UWP 应用使用 Azure AD 进行身份验证。当我运行该应用程序时,系统提示我登录,我这样做了并且身份验证成功。现在我无法返回“退出”状态。每当我运行该应用程序时,我都会自动登录。我已经调用SignOutAsync()
了 WebAccount,但它似乎没有任何效果。
首先,我称之为:
然后我调用以下命令,它成功并让我登录而无需任何交互。
如何退出并强制用户重新对应用进行身份验证?
编辑:这是一个更具凝聚力的示例,我登录、注销、实例化所有用于登录的对象,然后再次登录。
azure - CORS 异常:无法加载 https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize
这是一个带有工作/学校类型身份验证的 ASP.NET MVC 项目。
控制器
.cshtml
我有点困惑为什么我会得到,Failed to load https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize?client_id={CLIENT_ID}&response_mode=form_post&response_type=code%20id_token&scope=openid%20profile&state=OpenIdConnect.AuthenticationProperties%3{SOME RANDOM VALUE}&x-client-SKU=ID_NET451&x-client-ver=5.2.1.0: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:44320' is therefore not allowed access.
因为身份验证是由控制器自己处理的。当我调试控制器时var subscriptions = aConn.GetAllSubscriptions();
,得到了预期的数据。
任何人都可以启发我吗?
c# - 获取应用程序的第一个密钥保管库机密值时出现异常
在我的应用程序中,当我的应用程序获取第一个密钥库机密的值时,我遇到了异常。
只有当我从异常设置中打开“公共语言运行时异常”时才会出现异常。
我得到的例外是 -
Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException: 'Response status code indicates server error: 401 (Unauthorized).'
堆栈跟踪:-
at Microsoft.Rest.RetryDelegatingHandler.<>c__DisplayClass11_0.<<SendAsync>b__1>d.MoveNext()
我获取密钥保管库机密的代码如下 -
接口 IAdAuthentication
接口 IAdAuthentication 的实现在 AdAuthentication 类中
当我获取应用程序实例的第一个密钥库秘密的值时,会引发上面给定的异常,而第一个秘密标识符的值是什么并不重要。对于所有下一个密钥保管库秘密异常都不会发生。除了第一个密钥保管库机密的异常值之外,还获取了但我想从我的应用程序中减轻这个异常。似乎问题在于传递给初始化 KeyVaultClient 的 AuthenticationCallback。请让我知道我在这里缺少什么。
asp.net-mvc-4 - .Net MVC 和 Angular 6 中的 Azure AD Open Id Connect
我正在制作两个从 azure 广告进行身份验证的应用程序,这两个应用程序具有不同的客户端 ID 并且在同一个租户中,但是在这里我面临一个问题,即这两个应用程序都可以通过单击登录但注销行为不一样,我有分别注销两个应用程序
这是我的 .Net MVC 身份验证代码
如果我想使用如下所示的 OpenIdConnectAuthenticationDefaults 登录,我必须做什么,它显示没有 client_id 错误
最后这是我的角度验证码
}
请帮我解决这个问题。
azure - Azure REST API 身份验证
我正在构建一个 Android 应用程序,它将访问 Azure REST API 并从 azure 监控中读取一些数据。我在身份验证过程中遇到问题,因为不确定是否可以使用 MSAL 库进行身份验证以访问 Azure REST API?
c# - 如何知道从哪一点触发HttpClient任务取消
我有以下代码来获取不记名令牌,然后在 ac# 应用程序中调用 Web API。
我在这里面临的问题是,有时,这段代码偶尔会抛出一个异常,说“任务被取消”,而不是每次。我在网上搜索并找到了这个答案。所以我检查了任务是否被取消。然后我将超时时间增加到 30 分钟,如该答案中所述。
现在奇怪的是,任务等待 30 分钟(或我们指定的任何超时)然后抛出任务被取消异常。这让我发疯。
我想知道为什么当我们没有明确要求任务时任务会被取消,以及任务被取消的人或从哪里取消?有没有办法找到取消请求的来源?
非常感谢这方面的任何帮助,因为我无法弄清楚这个问题。
请假设所有变量都有正确的值,尽管这里没有提到。
编辑
异常消息:
一个任务被取消了。
这是异常堆栈跟踪:
异常 StackTrace:在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Net.Http.HttpClient.d__58.MoveNext() 的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- 结束来自先前引发异常的位置的堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter`1 的 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) C:\Users\SampleProject\HttpHelper.cs:line 145 中 SampleProject.d__2.MoveNext() 处的 .GetResult() --- 从先前引发异常的位置结束堆栈跟踪 ---
xamarin.forms - Azure 移动应用自定义身份验证和 MobileServiceClient
我正在为我的 azure 移动应用程序(https://www.newventuresoftware.com/blog/custom-authentication-with-azure-mobile-apps)进行自定义身份验证
我创建了AuthControll,它接受用户名和密码并创建令牌。当我调用MobileServiceClient.InvokeApiAsync("Auth", loginInfoDictionary)时,我成功收到了用户名和令牌。我使用收到的令牌创建了新的 MobileServiceUser(username)并将其设置为MobileServiceClient.CurrentUser。但是当我通过需要授权的方法调用MobileServiceClient.InvokeApi时,它告诉我我未经授权。
那我应该如何处理收到的令牌?我可以使用具有此类授权的MobileServiceClient.InvokeApiAsync和MobileServiceClient.GetTable方法吗?如果是,我错过了什么?
azure - Azure AD 身份验证重定向到主页
我正在构建一个运行良好的 Azure AD 身份验证,唯一的问题是,如果用户单击看起来像 host.com/xxx/bbb 的链接,如果他们没有经过身份验证,那么他们会被重定向到 root。
我需要他们仍然被重定向到他们在浏览器中输入的原始 URL。这可以实现吗?下面是我在应用启动时使用的代码片段:
OwinRequest 的所有属性都不包含我正在寻找的完整路径。我也试过看
但这也没有完整的地址。
azure - 代表当前登录到单独 Web 客户端的用户从 API 访问 MS Graph
我正在开发一个 API(ASP.NET Core),可以通过单独托管的 Web 客户端(React)访问,两者都作为应用服务托管在 azure 上。客户端应用程序必须具有基于 azure Ad 的身份验证(单租户,最好由基于 aad 的 azure auth 保护)。当用户登录客户端时,API 必须代表用户有权访问 MS Graph。显然这两个资源都必须得到保护,我已经尝试在两个应用程序服务上使用基于 AAD 的 azure auth,但是我无法在这种方法中使用从 auth 获得的令牌到 API 端的 ADD 获取到 MsGraph 的令牌。
问题是,如何避免使用来自客户端的 azure aad auth 令牌将令牌传递给 MsGraph,并仅基于来自 aad auth 的令牌获取 msGraph 的令牌,同时只有一个地方供用户登录并确保两个应用程序服务的安全?
我在 Api 端为 MsGraph 使用 nugget 来与 MsGraph 交互。我还没有找到任何涉及此特定案例的样本。