앵귤러에서 Azure 관리 리소스 엔드 포인트 토큰을 얻으려고하는데, 클리 넷 측에서 취약하다는 것을 알고 있습니다. 어떤 강력한 이유 때문에 어쨌든 나는 그것을 찾고 있습니다.
이 명령을 실행하여 access_token을 얻을 수 있습니다.
curl -X GET -H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials&client_id=<client-id>&resource=<management-resource-endpoint>&client_secret=<application-secret>' \
https://login.microsoftonline.com/<tenantid>/oauth2/token
이 명령을 http get 요청으로 변환하려고합니다 ...
getAADToken() {
const param = new HttpParams();
param.append('grant_type', 'client_credentials');
param.append('client_id', <client-id>);
param.append('resource', '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d');
param.append('client_secret', <application-secret>);
return this.http.get<any>("https://login.microsoftonline.com/<tenantid>/oauth2/token", {
headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),
params:param
});
}
Azure AD는 브라우저에서 클라이언트 자격 증명 흐름을 사용하는 것을 허용하지 않기 때문에 그렇게 할 수 없습니다. 구성 할 수없는 출처 간 요청을 허용해야합니다.
이 작업을 수행 할 수없는 많은 보안 이유가 있습니다. 가장 명백한 이유는 페이지를 방문하는 모든 사람이 클라이언트 암호를 볼 수 있다는 것입니다. 또한 해당 페이지의 파일을 얻을 수있는 사람은 누구나 API 에서 앱으로 작동 할 수 있으므로 실제로 어떤 일을 한 사람을 추적하는 것은 매우 어려워집니다.
일반적으로 사용자가 할 수 없어서 앱으로 무언가를해야하는 경우 사용자가 프런트 엔드에서 인증하고 백엔드 API를 호출하고 API가 사용자를 승인 한 다음 앱을 만듭니다. 대상 API에 대한 인증 된 호출 만
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다