如何在Azure Data Factory中从Bearer Token获取租户ID?
在Azure Data Factory中从Bearer Token提取租户ID的实现方法
完全可以在ADF里实现这个需求,核心是解析JWT格式的Bearer Token,具体步骤如下:
移除Bearer前缀
先把Token开头的Bearer去掉,用设置变量活动或者派生列活动都行。假设你的Bearer Token存在变量BearerToken里,表达式这么写:@replace(variables('BearerToken'), 'Bearer ', '')把结果存到新变量
RawJwtToken里。拆分JWT获取Payload段
JWT由三段用点分隔的Base64字符串组成,中间那段就是包含租户ID(字段名tid)的Payload。用拆分函数取第二段:@split(variables('RawJwtToken'), '.')[1]结果存到
JwtPayloadBase64变量。Base64解码Payload
JWT用的是URL安全的Base64,要先把-换成+、_换成/,再解码:@base64ToString(replace(replace(variables('JwtPayloadBase64'), '-', '+'), '_', '/'))解码后得到JSON字符串,存到
JwtPayloadJson变量。提取租户ID
解析JSON字符串后直接取tid字段:@json(variables('JwtPayloadJson')).tid把这个值存到
TenantId变量,后续Web调用直接引用这个变量就行。
如果嫌分步麻烦,也可以把所有逻辑写到一个表达式里,直接在Web活动的参数或请求头里用:
@json(base64ToString(replace(replace(split(replace(variables('BearerToken'), 'Bearer ', ''), '.')[1], '-', '+'), '_', '/'))).tid
内容的提问来源于stack exchange,提问作者Vaibhav Vishwas
相关产品推荐
相关产品推荐

