如何从kitura的azure active directory解码jwt?
我从azure ad收到一个访问令牌,并尝试在kitura服务器上对其进行解码 在jwt.io上,我可以成功解码它,但不能通过kitura示例项目中的jwt解码例程。我使用的是github上kitura示例项目给出的精确代码。如何从kitura的azure active directory解码jwt?,azure,jwt,azure-active-directory,kitura,Azure,Jwt,Azure Active Directory,Kitura,我从azure ad收到一个访问令牌,并尝试在kitura服务器上对其进行解码 在jwt.io上,我可以成功解码它,但不能通过kitura示例项目中的jwt解码例程。我使用的是github上kitura示例项目给出的精确代码。 是否有人将其与azure令牌一起使用?您应该能够将v1令牌解码为结构,而无需使用以下代码进行验证: struct AzureJWTClaims: Claims { let aud: String let iss: String let iat: D
是否有人将其与azure令牌一起使用?您应该能够将v1令牌解码为结构,而无需使用以下代码进行验证:
struct AzureJWTClaims: Claims {
let aud: String
let iss: String
let iat: Date
let nbf: Date
let exp: Date
let acr: String
let aio: String
let amr: [String]
let appid: String
let appidacr: String
let email: String
let family_name: String
let given_name: String
let idp: String
let ipaddr: String
let name: String
let oid: String
let rh: String
let scp: String
let sub: String
let tid: String
let unique_name: String
let uti: String
let ver: String
}
let jwt = try? JWT<AzureJWTClaims>(jwtString: "<YourJWTString>", verifier: .none)
然后将其传递给解码器:
let verifiedJWT = try? JWT<AzureJWTClaims>(jwtString: "<YourJWTString>", verifier: verifier)
让verifiedJWT=try?JWT(jwtString:,验证器:验证器)
您能否提供一个您试图解码的示例令牌?您是希望验证令牌还是仅对其进行解码?您是否创建了一个结构来模拟您希望从JWT解码的声明?我无法提供一个示例令牌。正如我在本示例中看到的,解码与验证一起进行。两种方式都会很棒。我是否必须将令牌完全建模为声明?您能否提供一个链接,指向生成令牌的来源?您可以使用.none
验证程序跳过令牌验证。这将允许您判断问题是否与JWT的验证或解码有关。您可以使用提供的索赔标准JWT
结构来解码标准索赔。如果您有任何自定义声明要解码,那么您需要在自己的结构中对它们进行建模。好的……这是声明的问题。我有一个类似于这个站点的示例v1令牌的令牌:解码(甚至是ms docs中的示例v1字符串)仍然返回零。我不得不稍微调整声明,但它最终成功了!谢谢马特和安德鲁!
let verifiedJWT = try? JWT<AzureJWTClaims>(jwtString: "<YourJWTString>", verifier: verifier)