2017-11-26 3 views
0

서버 응용 프로그램으로 인증해야하는 Android 앱을 개발 중입니다. 서버 애플리케이션은 Spring Security를 ​​사용하는 Spring Boot 애플리케이션이다. 서버 응용 프로그램은 사용자 지정 인증 공급자를 사용하여 사용자에 대해 허가 된 권한을 설정합니다. Firebase 인증 클레임을 만드는 방법은 무엇입니까?

내가 idToken를 검색하기 위해 사용하고있는 코드입니다 :

FirebaseToken firebaseToken = null; 

    try { 
     FirebaseApp app = FirebaseUtil.getFirebaseApp(); 
     firebaseToken = FirebaseAuth.getInstance(app).verifyIdTokenAsync(authenticationToken.getIdToken()).get(); 
    } catch (InterruptedException | ExecutionException | CancellationException e) { 
     throw new AuthenticationServiceException(e.getMessage()); 
    } 

    return firebaseToken; 

한 나는 중포 기지 토큰이 같은 주장을 검색 할 수 있습니다

Map<String, Object> claims = token.getClaims(); 

그때 반복 할 수 있습니다 주장을하고 이렇게 권위를 창출하십시오 :

List<GrantedAuthority> authorities = Lists.newArrayList(); 
authorities.add(new SimpleGrantedAuthority("some_role")); 

제가 어떻게 알 수없는 것은 어떻게해야할까요? Firebase 콘솔을 사용하여 클레임을 정리하십시오. 이것이 가능한가? 필자는 Firebase 데이터베이스를 사용해야하지만 firebase 문서에서 찾고자하는 것을 정확히 찾을 수 없다고 생각합니다.

답변

0

Firebase 인증에 대한 사용자 정의 클레임은 현재 Firebase Admin SDK를 통해서만 생성 할 수 있습니다. documentation on creating custom claims에서 :

// Set admin privilege on the user corresponding to uid. 
admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => { 
    // The new custom claims will propagate to the user's ID token the 
    // next time a new one is issued. 
}); 

너무 콘솔에서 주장을 만들 수 있도록하는 나쁜 생각이 아니다, 그래서 나는 당신에게 file a feature request를 권 해드립니다.

+0

아 좋아. 답장을 보내 주셔서 감사합니다 – SME

+0

내 대답이 유용하다면 왼쪽에있는 upvote 버튼을 클릭하십시오. 질문에 답한 경우 체크 표시를 클릭하십시오. 그런 식으로 다른 사람들은 당신이 (충분히) 도움을 받았다는 것을 알게됩니다. –

+0

커스텀 클레임이 자바 스크립트를 통해서만 생성 될 수있는 것처럼 보입니다.이 커스텀 클레임은 자바에서 개발 된 어플리케이션을 사용하기 때문에 이것을 배제합니다. 맞춤 토큰을 만들 수는 있지만 기존 인증 메커니즘 중 하나 (전자 메일과 암호가 선호 됨)를 사용하고 Java SDK를 사용하여 클레임을 추가했습니다. 이것이 불가능한 것처럼 보입니다. – SME

관련 문제