Currently we have SharePoint installed in our production environment. We are only on intranet currently, but we would like to make our SP accessible from internet and web URLs. Currently for authentication we use the Active directory. We would like to have a new authentication method using One Time Password. As I know from other systems that I have been working on the active directory is connected to NetworkPolicyServer (NPS) which has its own SQL-DB and uses OAUTH to generate user token Passphrase. The login page when accessed from outside should ask for the OTP also. Is there any way I can achieve this. The topology doesn't have to be the same. It should just to use OTP for login.
It very much depends on how you want to do two factor authentication. You probably could use SMS Passcode, as it was acquired by Microsoft and the two products should run smoothly with each other. SMS Passcode has a bunch of integrations. But as the name suggests, it only does provide SMS. I.e. your OTP value is sent via GSM to the untrusted, viral phone of your users. Making rollout easy but giving not the highest security and not that much flexibility.
You could choose higher security levels by using hardware tokens. You might want to take a look at the safenet authentication manager, which can be fully active directory integrated and which supports softtokens (smartphone apps), smartcards and different kind of OTP-tokens.
If you are up for a challenge you could take a look at privacyIDEA, wich is an opensource product and provides support for all kind of different OTP tokens, thus freeing you from a vendor lock of your authentication devices. It supports tokens like SMS, Email, all kind of OATH and TOTP hardware tokens, smartphone tokens like the Google auhenticator, Challenge Response tokens and many more.