2016-02-15 4 views
1

Je suis actuellement en train de mettre en œuvre une solution consistant en ADFS 3.0 avec authentification multifactorielle. J'ai suivi les étapes dans TechNet (https://msdn.microsoft.com/en-GB/Library/dn783423.aspx?f=255&MSPPError=-2147217396) pour configurer l'exemple d'adaptateur, qui fonctionne correctement. Je veux maintenant l'étendre et faire face à quelques problèmes. J'ai cherché sur le web et stackoverflow pour quelque chose de similaire mais je n'ai rien trouvé alors je les publie tous ici. Je ne sais pas si je dois diviser cela en différentes questions:ADFS 3.0 - Extension de la fonctionnalité

  1. Je dois d'étendre l'adaptateur de sorte qu'une partie du html est rendu par un script externe, à savoir que je dois ajouter un script supplémentaire à charger lorsque le L'adaptateur adfs html est rendu. De ce que j'ai pu trouver, on pourrait modifier le thème pour inclure du javascript supplémentaire dans onload.js, mais je ne veux pas aller dans cette direction, car le script doit vraiment être chargé en externe.

La seule façon que je peux penser, et la nature des travaux, est d'injecter javascript html qui charge le script dinamically, quelque chose comme ceci:

var script =document.createElement('script') 
fileref.setAttribute("type","text/javascript") 
fileref.setAttribute("src", <my_script_loaded_over_http>) 

fileref.onload = 
     function() { 
     //call script method 
     }; 

Mais parce que le script externe dépend de la "onload" événement de la fenêtre pour une partie de sa logique, cela ne fonctionne pas car il est chargé trop tard ..

Est-ce possible du tout?

  1. Est-il possible que l'adaptateur injecte de nouveaux en-têtes de réponse? (Je suppose que ce n'est pas le cas)

  2. Existe-t-il un moyen standard de fournir un fichier de configuration à la DLL de l'adaptateur, afin que certaines valeurs puissent être modifiées à l'exécution sans avoir à déployer une nouvelle DLL? Sinon, est-il prudent d'écrire le fichier de configuration dans le dossier adfs et de lire à partir de là?

Merci beaucoup

Répondre

1

j'ai réussi à comprendre cela par moi-même:

1- L'interface IAdapterPresentationForm fournit une méthode pour revenir tout scripts ou css je veux inclure: string GetFormPreRenderHtml (int lcid) par exemple:

public string GetFormPreRenderHtml(int lcid){ 
     StringBuilder sb = new StringBuilder(); 
     sb.Append("<script src='http://myjs.js' type='text/javascript'></script>"); 
     sb.Append("<link rel='stylesheet' type='text/css' href='http://mycss.css' />"); 
     return sb.ToString(); 
} 

2- Pas du tout

3- Il est possible de transmettre un fichier de configuration lors de l'enregistrement de l'adaptateur en utilisant: Register-AdfsAuthenticationProvider -TypeName $ typeName -Verbose -ConfigurationFilePath.

Le pipeline ouvrira un flux pour vous, et le transmettre dans:

void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) 

Référence: http://blogs.recneps.net/category/ADFS