常見問題 App ID
此常見問題提供 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 中使用的是哪些演算法? | 該服務使用 AES 和 SHA-256 與鹽漬。 |
| 您是否使用公用或開放程式碼加密模組或提供者? 您是否曾經公開加密功能? | 該服務使用 avax.crypto Java 函式庫,但從未公開加密功能。 |
| 金鑰如何儲存? | 系統會產生金鑰,並以每一個地區特定的主要金鑰進行加密,然後儲存在本端。 主要金鑰儲存在 Key Protect 中。 每個地區都有其自己的信任根金鑰,此金鑰儲存在 Key Protect 中,並以 HSM 進行備份。 每個服務實例(承租戶)都有自己的資料加密和記號簽章金鑰,這些金鑰使用地區的信任根金鑰進行加密。 |
| 您使用的金鑰強度為何? | 服務使用 16 個位元組。 |
| 您是否調用任何揭露加密功能的遠端 API | 否,我們沒有。 |
App ID 使用什麼時鐘同步化?
App ID 在 IBM Cloud中執行,它使用內部 NTP 伺服器: servertime.service.softlayer.com。
將應用程式與 App ID的時間來源同步化,取決於您用來執行應用程式的環境。
- 如果您的應用程式在 IBM Cloud 標準基礎架構中執行,請將 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 保護、負載平衡、Web 防火牆、資料庫等等。
App ID 是一個以「即服務」方式提供的完全受管理供應項目。 這表示 IBM 會處理服務的作業、處理合規性、多個區域中的可用性、SLA 等。App ID 也具有 IBM Cloud Platform 的整合體驗,其中包括原生執行時期及服務,例如 Kubernetes Service、Cloud Functions及 Activity Tracker。
可以在多個應用程式中使用相同用戶端 ID 嗎?
雖然在技術上 _can_,您可以在一個以上的應用程式中使用相同的憑證,但基於幾個原因,我們強烈建議您不要這樣做。 最重要的是,當您在各應用程式間共用 ID 時,任何類型的攻擊或入侵都會影響整個環境,而非單一應用程式。 例如,如果您在三個應用程式之間使用您的 ID,且其中一個應用程式已受損,則這三個應用程式都會受損。 攻擊者能夠假冒您的任何應用程式。 第二個原因是,當您在多個應用程式中使用相同的用戶端 ID 時,就無法區分不同的應用程式。 例如,您無法判斷使用了哪個應用程式來產生記號。
如何更新應用程式以使用新的服務實例而不遺失任何資料
您可以將一個 App ID 實例中的資訊移轉到另一個實例。
- 建立服務的實例。
- 使用 GUI 複製身分提供者配置。
- 移轉使用者設定檔。 已知使用者會匯出為 JSON 物件。 無法移轉匿名使用者。 您可以選擇將整個物件匯入新實例,或者如果有多個實例,則可以視情形分割物件並劃分使用者。 對於 Cloud Directory,請參閱移轉使用者。 對於聯合身分提供者,請使用下列步驟。
- 建立應用程式認證以呼叫新的服務實例。
- 在服務儀表板中,導覽到應用程式索引標籤。
- 按一下新增應用程式,並提供應用程式的名稱。 然後,按一下儲存。
- 按一下表格中的檢視認證,並複製輸出。
- 將新認證貼入應用程式。
- 將應用程式更新為使用包含任何 URL 的新認證。
- 根據配置,您可能需要重新部署應用程式,或者取消連結並重新連結應用程式。
App ID 可以協助配置登出嗎?
視您配置應用程式的方式而定,App ID 可以協助為使用者提供登出功能。 請參閱下表,以查看可使用登出功能的位置。
| 說明 | |
|---|---|
| App ID SDK | App ID SDK 具有內建登出功能。 |
| 雲端目錄 SSO[1] | App ID 提供 Cloud Directory SSO 特性的內建登出功能。 |
| Ingress | Ingress 提供內建登出功能。 |
| Istio | Istio 适配卡配置为通过 OIDC 提供注销功能。 |
配置登出
若要配置登出,您必須配置應用程式將要求傳送至身分提供者。 然後,將使用者重新導向至不需要鑑別的應用程式區域。 在大多數的使用案例中,應用程式伺服器會話可能會由 App ID SDKs、Ingress 或 Istio 設定,並與聯合身分提供者 (例如 SAML 或 Cloud Directory) 合作,以啟用驗證與授權。
在下列 HTML 範例中,使用 App ID SDK 來配置登出。 但是,如果您使用另一個選項,則可以使用此 Snippet 作為指引,並更新它以符合您的需求。
<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 allowlist。 ↩︎