2017-09-18 9 views
1

WordPress 용 Auth0을 사용하여 SSO를 수행하고 내 응용 프로그램에서 담론을 사용하려고합니다. 그 흐름은 아래에서 언급된다.Discourse 및 Auth0을 사용하여 SSO를 수행하는 방법은 무엇입니까?

Image added here (low on rep) so cant post

사용자는 세부 사항은 auth0 API를 사용하여 사용자를 인증하고 토큰을 다시 전송 서버로 전송, 응용 프로그램에서 사용자 이름과 암호를 입력합니다.

담화에있는 GitHub에서 auth0 SSO plugin2를 설치했으며 클라이언트 ID가 모두 클라이언트 비밀 정보가 플러그인에 추가되었습니다.

내 응용 프로그램에 로그인했을 때 Discourse의 경우 SSO를 수행 할 사람을 알고 싶습니다.

WordPress의 경우 다음 방법을 사용하고있었습니다.

<form *ngIf="userService.isAuthenticated()" ngNoForm action="http://xx.xx.xx.xx/index.php?auth0=implicit&client_id=xxxxxxxxxxxxxxxxxxxxxxxxx&connection=xxxxxxxxxx" 
    method="post"> 
    <input class="hidden" type="text" id="token" name="token" value="{{tokenValueIsHereReturnedbyAuth0Authentication}}" /> 
    <input class="hidden" type="text" id="redirect_to" name="redirect_to" value="http://xx.xx.xx.xx/index.html" /> 
    <input class="btn btn-primary pull-right" type="submit" value="View" /> 
</form> 

그래서 담론에서 비슷한 것을 어떻게합니까?

나는 시도 다음

  1. https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045?u=deanmarktaylor

내가

https://somesite.com/sso?sso=PAYLOAD&sig=SIG

페이로드 모르는 나는 그을 완료 할 수 없습니다 및 SIG는

이다 그러나

업데이트 :

페이로드 생각 : Auth0이 access_token으로 준 페이로드는 Base64 (base64encode dot org 사용)으로 인코딩 된 페이로드이며 SIG는 sso_secret를 키로 사용하는 페이로드의 HMAC-SHA256 해시입니다. 및 Base64로 인코딩 된 페이로드 (freeformatter dot slash hmac-generator)

답변

0

Auth0과 Discourse를 사용하여 완벽한 SSO를 통합하는 방법에 대한 내 블로그 게시물을 확인하십시오.

기본적으로 Discourse 방식으로 요청에 서명 할 수 있도록 이미 개발 된 라이브러리를 사용하는 새로운 Auth0 Rule을 설정해야합니다. Client ID와 Client Secret을 사용하여 해당 규칙에 대한 코드를 복사하여 붙여넣고 여분의 플러그인을 사용하지 않고 SSO를 처리하는 더 좋은 방법을 가져옵니다. 좋고 쉬운 :)

https://medium.com/leog-s-blog/discourse-sso-with-auth0-e49486d0294a