Schlüsselbasierte MID-Webserverauthentifizierung konfigurieren
Bieten Sie Ihrer MID-Webservererweiterung zusätzliche Sicherheit, indem Sie schlüsselbasierte Authentifizierung verwenden. Generieren Sie ein Authentifizierungstoken, das im Autorisierungsheader eingehender Client-Anforderungen gesendet werden soll.
Vorbereitungen
Hinweis:
Dieses Verfahren dient nur der Kompatibilität mit Releases vor Zurich. Weitere Informationen zum Verfahren im Release Zurich für die Konfiguration des MID-Webserver s finden Sie unter MID-Webserver erweiterung konfigurieren.
- Stellen Sie einen MID-Server bereit, und starten Sie ihn.
- Konfigurieren Sie eine MID-Webserver-Erweiterung und wählen Sie „Schlüsselbasiert“ als Authentifizierungstyp aus. Weitere Informationen finden Sie unter Konfigurieren Sie die MID-Webservererweiterung .
Erforderliche Rolle: agent_admin
Prozedur
So generieren Sie den HMAC der Zeichenfolge, die definierte Elemente der HTTP/HTTPS-Anforderung verwendet, mit Java
package sample;
import com.glide.util;
import java.security.SignatureException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class AuthUtil {
private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
/***
* Generates base64-encode the HMAC(Hash Message Authentication Code) of input data
*
* @param data
* @param key
* @return
* @throws java.security.SignatureException
*/
public static String signData(String data, String key) throws java.security.SignatureException {
String result;
try {
// get an hmac_sha1 key from the raw key bytes
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);
// create hmac_sha1 Mac instance and initialize with the signing key
Mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
mac.init(signingKey);
// compute the hmac on input data bytes
byte[] rawHmac = mac.doFinal(data.getBytes("UTF-8"));
// base64-encode the hmac
result = Base64.encode(rawHmac);
} catch (Exception e) {
throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
}
return result;
}
}