正在我的Delphi rest API中验证Azure AD客户端令牌



我有一个用Delphi编写的Rest API,需要验证任何客户端(例如javascript SPA web客户端(传入的Azure Active Directory web令牌是否有效,并且适用于我的Azure注册应用程序。

我能够使用josejwt来生成我自己的令牌并对其进行验证。https://blogs.embarcadero.com/delphi-jose-jwt-is-a-powerful-json-web-token-library-for-delphi/然而,我不知道如何使用josejwt库验证AAD令牌。

我遵循了这些指示(https://www.voitanos.io/blog/validating-azure-ad-generated-oauth-tokens/)以手动地从微软的网站获得与";孩子;属性,但我如何将其与jose jwt一起使用来验证AAD令牌让我感到困惑。我试着用它作为秘密,但jose-jwt库给了我一个错误";密钥不是PEM格式的RSA密钥";。

事实证明,微软添加了一个;nonce";到他们的应用程序范围的令牌头,josejwt不喜欢。这篇文章解释了这一切。https://xsreality.medium.com/making-azure-ad-oidc-compliant-5734b70c43ff

一旦我添加了自己的作用域,josejwt就接受了公钥,因为头中不包含";nonce";

最新更新