我正在尝试在我们的Web应用程序中使用Microsoft Outlook邮件API。 首先遵循了本教程https://docs.microsoft.com/en-us/outlook/rest/javascript-tutorial,但是其中一些重要的内容被跳过了。
[跳过的部分]
https://docs.microsoft.com/en-us/outlook/rest/javascript-tutorial#using-the-id-token
此示例不会进行 OpenID规范。最值得注意的是,它不会验证 令牌。当前从Azure请求签名密钥需要 服务器端组件,因此为了避免,我们将跳过该步骤 简单。但是,生产应用程序不应跳过此重要事项 步骤!
在示例代码中:
// Per Azure docs (and OpenID spec), we MUST validate
// the ID token before using it. However, full validation
// of the signature currently requires a server-side component
// to fetch the public signing keys from Azure. This sample will
// skip that part (technically violating the OpenID spec) and do
// minimal validation
我有一个使用Django创建的服务器端组件,但是我不确定如何从Azure获取公共签名密钥。
我正在实现的实际功能是通过HTML表单发送电子邮件。由于多种原因,我选择在客户端实现此功能。它正在运行,我想在部署之前确保身份验证的安全性。
请澄清一下,我遵循了上面的教程,并使用此repo中的代码来访问Outlook API,而不是使用Microsoft图形。回购在本教程的开头介绍。
谢谢。
答案 0 :(得分:0)
您必须通过检查Azure的AlphanumComparator comparator = new AlphanumComparator ( CaseHandling.CASE_INSENSITIVE );
Arrays.sort( albumArray, ( Album a, Album b ) -> {
return comparator.compare( a.getAlbumArtist(), b.getAlbumArtist() );
});
配置(例如this)在Azure中找到jwks
或cert
终结点。您将能够以well-known
格式在jwks端点中找到所有活动键和已启用键。您可以在应用程序内部解析这些值,然后选择所需的密钥。