Heim >Betrieb und Instandhaltung >Sicherheit >So ersetzen Sie Cognito durch Authing und AWS JWT Authorizer
Verwenden Sie den OIDC-Anbieter von Authing als Authentifikator für AWS API Gateway, um Lambda-Funktionen zu schützen. Es ist nicht erforderlich, einen Authentifizierungscode zu schreiben. Konfigurieren Sie ihn einfach auf beiden Seiten. Es demonstriert außerdem die Fähigkeit von Authing, OIDC-IdToken für benutzerdefinierte Felder basierend auf unterschiedlichen Kontexten auszustellen.
Registrieren Sie ein Authing-Konto
Besuchen Sie https://console.authing.cn und registrieren Sie ein Konto
Melden Sie sich bei der Authing-Konsole an
Erstellen Sie einen Benutzerpool
Erstellen Sie eine Anwendung
Suchen Sie die Anwendung, die Sie gerade erstellt haben, in der Anwendungsliste und klicken Sie auf Konfigurieren. Wählen Sie unten RS256 für den Signaturalgorithmus aus.
Benutzer erstellen
Geben Sie Benutzerverwaltung> ein, klicken Sie auf die Schaltfläche „Neu“ in der oberen rechten Ecke, erstellen Sie zwei Benutzer und klicken Sie schließlich auf „Speichern“.
Legen Sie das benutzerdefinierte Token-Feld fest
Geben Sie die
Erweiterungsfunktionen> Pipeline ein und klicken Sie auf das Pluszeichen unten an der Position „Bevor OIDC Token ausgibt“ ganz rechts.
Wählen Sie, ob Sie ein benutzerdefiniertes IdToken hinzufügen möchten.
Geben Sie in der Popup-Schublade den folgenden benutzerdefinierten Code ein, um das Token-Feld anzupassen. Klicken Sie abschließend auf Hochladen.
async function pipe(user, context, callback) { if(user.email === 'sample@sample.com') { user.addIdToken("companyCode", "sample") } if(user.email === 'sample2@sample.com') { user.addIdToken("companyCode", "sample2") } callback(null, user, context) }
AWS-Konsolenkonfiguration
Betreten Sie die AWS API-Gateway-Konsole und klicken Sie auf „API erstellen“.
Wählen Sie die HTTP-API aus und klicken Sie auf „Erstellen“.
Geben Sie den API-Namen ein und klicken Sie auf „Weiter“.
Klicken Sie auf „Weiter“.
Klicken Sie auf „Weiter“
Klicken Sie auf „Erstellen“.
Erstellen Sie eine Lambda-Funktion
Betreten Sie die AWS Lambda-Konsole und klicken Sie auf „Funktion erstellen“.
Erstellen Sie eine Lambda-Funktion wie unten gezeigt. Der Funktionsname kann beliebig eingegeben werden.
Trigger für Lambda-Funktion hinzufügen
API-Gateway auswählen.
Wählen Sie das soeben erstellte API-Gateway aus und klicken Sie auf „Hinzufügen“.
点击 Lambda 函数,向下滚动浏览器窗口,进入编辑界面。
输入以下代码,用于返回 Token 中的信息,包括 companyCode。
exports.handler = async (event) => { // TODO implement const token = event.headers.authorization.replace('Bearer ', ''); const claims = event.requestContext.authorizer.claims; const response = { statusCode: 200, body: JSON.stringify({ token, claims, companyCode: claims.companyCode }) }; return response; };
最后点击「Deploy」。
设置 API Gateway 路由 Authorizer
进入 AWS API Gateway 控制台,找到刚创建的 API。
找到刚刚为 Lambda 函数设置的触发器路由,点击「附加授权」。
点击「创建并附加授权方」。
选择 JWT 授权方类型
授权方按照以下方式设置。
上面的信息可以在 Authing 控制台找到:
在应用> 应用列表,找到你的应用,点击「配置」。
发布者 URL 填写这里的 Issuer,受众填写应用 ID。
最后点击「创建并附加」。
到此所有配置完毕
登录示例
安装 NodeJS
http://nodejs.cn/download/
克隆项目
git clone https://git.authing.co/yezuwei/sample-poc
安装依赖
cd sample-poc npm install
运行
node bin/www
然后在浏览器访问 https://kone.authing.cn
在登录页面输入账号和密码
收到来自 Lambda 的响应:
点击登出,再使用账号和密码登录
收到来自 Lambda 的响应:
注意 companyCode 已经根据用户的信息字段,进行逻辑判断然后返回了另外一个。
Das obige ist der detaillierte Inhalt vonSo ersetzen Sie Cognito durch Authing und AWS JWT Authorizer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!