자주 묻는 질문 App ID
이 FAQ에서는 IBM Cloud® App ID 서비스에 대한 일반적인 질문의 답을 제공합니다.
내 경로 재지정 URI를 허용 목록으로 지정해야 하는 이유는 무엇입니까?
경로 재지정 URI는 애플리케이션의 콜백 엔드포인트입니다. URI를 허용 목록으로 지정하면 App ID이(가) 해당 위치로 사용자를 전송하도록 허용합니다. 런타임 시 App ID은(는) 사용자를 경로 재지정하기 전에 사용자의 허용 목록에 대해 URI를 유효성 검증합니다. 이 프로세스를 사용하면 피싱 공격을 방지하고 공격자가 사용자의 토큰에 액세스할 수 있는 가능성이 줄어들 수 있습니다. 경로 재지정 URI에 대한 자세한 정보는 경로 재지정 URI 추가를 참조하십시오.
URL에 조회 매개변수를 포함하지 마십시오. 이는 유효성 검증 프로세스에서 무시됩니다. URL 예제: http://host:[port]/path
App ID에서 암호화가 어떻게 작동합니까?
암호화에 대한 자주 묻는 질문의 답변은 다음 표를 확인하십시오.
| 질문 | 답변 |
|---|---|
| 암호화를 사용하는 이유는 무엇입니까? | 사용자의 정보를 보호하는 한 가지 방법은 저장 및 전송 중인 고객 데이터를 암호화하는 것입니다. 이 서비스에서는 테넌트 키별로 고객의 저장된 데이터를 암호화하고 모든 네트워크 세그먼트에서 TLS 1.2+를 강제 시행합니다. |
| App ID에서 사용되는 알고리즘은 무엇입니까? | 서비스에서는 솔트(salt)와 함께 AES 및 SHA-256을 사용합니다. |
| 공용 또는 오픈 소스 암호화 모듈이나 제공자를 사용합니까? 암호화 기능을 노출한 적이 있습니까? | 서비스에서는 avax.crypto Java 라이브러리를 사용하지만 암호화 기능을 노출하지 않습니다. |
| 키는 어떻게 저장됩니까? | 키는 생성되어 각각의 지역에 특정한 마스터 키로 암호화된 후 로컬로 저장됩니다. 마스터 키는 Key Protect에 저장됩니다. 각 지역에는 Key Protect에 저장되는 고유 신뢰 루트 키가 있으며, 이 키는 HSM에서 백업합니다. 각 서비스 인스턴스(테넌트)에는 지역의 키 루트 신뢰를 사용하여 암호화되는 고유 데이터 암호화 및 토큰 서명 키가 있습니다. |
| 사용자는 키 등급은 무엇입니까? | 서비스에서는 16바이트를 사용합니다. |
| 암호화 기능을 노출하는 원격 API를 호출합니까? | 아니오, 호출하지 않습니다. |
App ID에서 사용하는 클럭 동기화는 무엇입니까?
App ID가 내부 NTP 서버, servertime.service.softlayer.com을 사용하는 IBM Cloud에서 실행됩니다.
애플리케이션과 App ID 시간 소스의 동기화는 애플리케이션을 실행하는 환경에 따라 다릅니다.
- 애플리케이션이 IBM Cloud Classic Infrastructure에서 실행되면 NTP 서버를
servertime.service.softlayer.com으로 설정하십시오. - 애플리케이션이 IBM Cloud VPC Infrastructure에서 실행되면 NTP 서버를
time.adn.networklayer.com으로 설정하십시오. - 애플리케이션이 IBM Cloud에서 실행 중이 아닌 경우 이러한 시간 서버에 대한 액세스 권한이 없습니다. 이 경우, NTP 서버를
time-a.nist.gov또는time-b.nist.gov로 설정하십시오.
App ID와 Keycloak 간의 차이점은 무엇입니까?
App ID와 Keycloak은 모두 애플리케이션에 인증을 추가하고 서비스를 보안 설정하는 데 사용할 수 있습니다. 두 오퍼링 간의 주요한 차이점은 패키징 방식입니다.
Keycloak은 소프트웨어로 패키징됩니다. 즉, 사용자가 다운로드한 이후에 제품 기능을 유지보수할 책임은 개발자에게 있습니다. 호스팅, 고가용성, 준수, 백업, DDoS 보호, 로드 밸런싱, 웹 방화벽, 데이터베이스에 대한 책임은 사용자에게 있습니다.
App ID는 "서비스로" 제공되는 완전히 관리되는 오퍼링입니다. 이는 IBM이 서비스의 조작을 처리하고 준수, 여러 구역의 가용성, SLA 등을 처리함을 의미합니다. App ID에는 기본 런타임 및 서비스(예: Kubernetes Service, Cloud Functions 및 Activity Tracker)를 포함하는 IBM Cloud 플랫폼과 통합된 경험이 있습니다.
둘 이상의 애플리케이션에서 동일한 클라이언트 ID를 사용할 수 있습니까?
기술적으로 _can_이(가) 둘 이상의 애플리케이션에서 동일한 인증 정보를 사용하는 동안에는 여러 가지 이유로 인해 수행하지 않는 것이 좋습니다. 첫 번째 이유는 애플리케이션에서 ID를 공유할 때 모든 유형의 공격이나 손상이 하나의 애플리케이션이 아닌 전체 환경에 영향을 미치기 때문입니다. 예를 들어, 세 개의 애플리케이션에서 ID를 사용한 상태에서 하나의 애플리케이션이 손상되면 세 개 모두가 손상됩니다.
공격자는 사용자의 앱을 위장할 수 있습니다. 두 번째 이유는 여러 앱에서 동일한 클라이언트 ID를 사용하는 경우 애플리케이션을 구별할 방법이 없다는 점입니다. 예를 들어 토큰을 생성하는 데 사용한 앱을 알 수 없습니다.
데이터 손실 없이 새 서비스 인스턴스를 사용하도록 내 애플리케이션을 업데이트할 수 있는 방법은 무엇입니까?
App ID의 한 인스턴스에서 다른 인스턴스로 정보를 마이그레이션할 수 있습니다.
- 서비스 인스턴스를 작성하십시오.
- GUI를 사용하여 ID 제공자 구성을 복제하십시오.
- 사용자 프로파일을 마이그레이션하십시오. 알려진 사용자를 JSON 오브젝트로 내보냅니다. 익명의 사용자는 마이그레이션할 수 없습니다. 전체 오브젝트를 새 인스턴스로 가져오도록 선택하거나 인스턴스가 두 개 이상인 경우 적절하게 사용자를 구분하여 나눌 수 있습니다. Cloud Directory의 경우 사용자 마이그레이션을 참조하십시오. 연합 ID 제공자의 경우 다음 단계를 사용하십시오.
- 새 서비스 인스턴스를 호출하기 위해 애플리케이션 인증 정보를 작성하십시오.
- 서비스 대시보드에서 애플리케이션 탭으로 이동하십시오.
- 애플리케이션 추가를 클릭하고 애플리케이션에 이름을 부여하십시오. 그런 다음 저장을 클릭하십시오.
- 표에서 인증 정보 보기를 클릭하고 출력을 복사하십시오.
- 새 인증 정보를 애플리케이션에 붙여넣으십시오.
- URL 등의 새 인증 정보를 사용하도록 애플리케이션을 업데이트하십시오.
- 구성에 따라 애플리케이션을 다시 배치하거나 바인드를 해제하고 리바인드해야 할 수도 있습니다.
App ID을(를) 사용하여 로그아웃을 구성할 수 있습니까?
애플리케이션 구성 방법에 따라 App ID를 통해 사용자를 위한 로그아웃 기능을 쉽게 사용할 수 있습니다. 로그아웃의 기능이 사용 가능한 위치를 보려면 다음 표를 참조하십시오.
| 설명 | |
|---|---|
| App ID SDK | App ID SDK에는 기본 제공된 로그아웃 기능이 있습니다. |
| Cloud Directory SSO[1] | App ID은(는) Cloud Directory SSO 기능에 적합한 기본 제공된 로그아웃 기능을 제공합니다. |
| Ingress | Ingress는 기본 제공된 로그아웃 기능을 제공합니다. |
| Istio | Istio 어댑터는 OIDC를 통해 로그아웃 기능을 제공하도록 구성됩니다. |
로그아웃 구성
로그아웃을 구성하려면 ID 제공자에게 요청을 보내도록 애플리케이션을 구성해야 합니다. 그런 다음 인증이 필요하지 않은 애플리케이션 영역으로 사용자를 경로 재지정합니다. 대부분의 유스 케이스에서 애플리케이션 서버 세션은 인증 및 권한 부여가 사용 가능하도록 SAML 또는 Cloud Directory와 같은 연합 ID 제공자와 협업하여 작동하는 App ID SDK, Ingress 또는 Istio로 설정될 수 있습니다.
다음 HTML 예에서 App ID SDK는 로그아웃을 구성하는 데 사용됩니다. 그러나 다른 옵션을 사용하여 작업 중인 경우 지침으로 이 스니펫을 사용하고 요구사항에 맞게 이를 업데이트할 수 있습니다.
<script>
var ticker = setInterval(tick, 1000);
var counter = 5;
function tick() {
var timerDiv = document.getElementById("timer");
if (counter > 0) {
timerDiv.innerText = "Logged out. Redirecting back in " + (counter--) + " seconds.";
} else {
document.location = "./appid_logout";
}
} </script>
<iframe height="0" width="0" src="https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0"></iframe>
-
클라우드 디렉터리 SSO 기능과 함께 사용되는 모든 리디렉션 URL은 App ID UI의 로그아웃 URL 허용 목록에 추가해야 합니다. ↩︎